<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:general="http://java.sun.com/jsf/composite/components/general"
      >
    <ui:composition template="template.xhtml">
        <ui:define name="dialogs">

        <general:loading_dialog
            dialogTitle="Executando a ação"
            message="Carregando..."
            widgetDialog="loadingDialog"
            id="loadingEntity"
        />

    <p:dialog header="Buscar produtos" widgetVar="findProdutosDialog" resizable="false" modal="true" height="530" width="700" >
        <h:form id="findProductForm" >
            <h:panelGrid columns="4">
                <h:outputText value="Filtrar produtos:" styleClass="formLabel" style="width: 120px"/>

                <h:inputText id="productSearchFilter" style="width: 300px"
                             value="#{pedidoBean.nameProductFilter}"
                             onclick="jQuery(this).select()">
                    <p:ajax event="keyup" update="selectProductGroup" />
                </h:inputText>
                <p:watermark for="productSearchFilter" value="Digite o nome do produto" />

            </h:panelGrid>

            <p:separator styleClass="clear"/>

            <div style="overflow: auto; height: 445px">
                <h:panelGroup id="selectProductGroup">

                    <p:dataTable var="products" value="#{pedidoBean.listProdutos()}"
                                 paginator="true" paginatorPosition="bottom" rows="10"
                                 emptyMessage="Nenhum produto foi encontrado"
                                 currentPageReportTemplate="({currentPage} de {totalPage})"
                                 paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}">

                        <p:column headerText="Nome" >
                            <h:outputText value="#{products.name}" />
                        </p:column>
                        <p:column headerText="Detalhe" >
                            <h:outputText value="#{products.detalhe}" />
                        </p:column>
                        <p:column headerText="Marca" >
                            <h:outputText value="#{products.marca}" />
                        </p:column>
                        <p:column headerText="Unidade" >
                            <h:outputText value="#{products.unidadeMed}" />
                        </p:column>

                        <p:column headerText="Adicionar" style="width: 50px">
                            <p:commandButton icon="ui-icon ui-icon-circle-check" action="#{pedidoBean.selectProductListener(products)}"
                                              update=":formNewProductAdd" onclick="findProdutosDialog.hide()" />
                        </p:column>

                    </p:dataTable>

                </h:panelGroup>
            </div>
        </h:form>
    </p:dialog>


            
             <p:dialog id="dialogNewProductAdd" widgetVar="newProductAdd" header="Adicionar produto" >
                <h:form id="formNewProductAdd">
                <p:panel header="Adicionar insumos" >
                                                  <script type="text/javascript">
                                                          apply_price_format('.valor');
                                                           apply_quant_format('.quant');
                                                        
                                                   </script>
                                                  
                                 <h:panelGrid columns="3">
                                    <h:outputText value="Nome produto:  " styleClass="formShortLabel"/>
                                    <p:inputText value="#{pedidoBean.produtoSelected}" disabled="true"  size="44" />
                                                 
                                    <p:commandButton icon="ui-icon ui-icon-search" update=":findProductForm" onclick="findProdutosDialog.show()" title="Pesquisar produtos"/>
                                 </h:panelGrid>
                                   <h:panelGrid columns="2">
                                       <h:outputText value="Detalhe" styleClass="formShortLabel"/>
                                       <p:inputText id="detalhe" value="#{pedidoBean.produtoSelected.detalhe}" disabled="true" />
                                       <h:outputText value="Marca" styleClass="formShortLabel"/>
                                       <p:inputText id="marca" value="#{pedidoBean.produtoSelected.marca}" disabled="true"/>

                                   </h:panelGrid>

                                <h:panelGrid columns="2">
                                     <h:outputText value="Nome etapa:  " styleClass="formShortLabel"/>
                                     <p:autoComplete value="#{pedidoBean.produto_pedido.etapa}"
                                                     completeMethod="#{autoCompleteBean.completeEtapa}"
                                                                var="e" itemLabel="#{e.name}" itemValue="#{e}"
                                                                converter="etapaConverter" size="44" />

                                        <h:outputText value="Entrega:" styleClass="formShortLabel"/>
                                       <p:calendar value="#{pedidoBean.produto_pedido.dataEntrega}" />

                                       <h:outputText value="Valor:" styleClass="formShortLabel"/>
                                       <p:inputText value="#{pedidoBean.produto_pedido.valor}"
                                                    styleClass="valor"  converter="monetaryConverter"/>

                                       <h:outputText value="Quantidade:" styleClass="formShortLabel"/>
                                       <p:inputText value="#{pedidoBean.produto_pedido.quantidade}" converter="quantidadeConverter" styleClass="quant" />
                                 </h:panelGrid>
                            <p:separator />
                            <p:commandButton value="Adicionar" action="#{pedidoBean.addProduto_Nota()}" update=":newPedidoform :growl"/>
                            <p:commandButton value="Cancelar" action="#{pedidoBean.cancelar()}"
                                             onclick="newProductAdd.hide()" />
                            </p:panel>
                    </h:form>
            </p:dialog>



         <!--Inicio Edição de peido -->
               <p:dialog header="Edição de pedido" widgetVar="editPedido" modal="true" resizable="false">
                <p:panel id="panelEditPedido" header="Pedido" style="width: 750px">

                    <h:form id="editPedidoform">
                        <p:tabView>

                            <p:tab title="Dados">

                                <p:panel header="Pedido">
                                    <h:outputText value=" Numero:" styleClass="formShortLabel"/>
                                    <p:inputText value="#{pedidoBean.pedidoSelected.number}" disabled="true" />
                                </p:panel>

                                <p:panel header="Empresa">

                                    <h:panelGrid columns="2">
                                      <h:outputText value=" Nome:  " styleClass="formShortLabel"/>
                                      <p:autoComplete value="#{pedidoBean.empresaSelected}"
                                                      completeMethod="#{autoCompleteBean.completeEmpresa}"
                                                    var="e" itemLabel="#{e.name}" itemValue="#{e}"
                                                    converter="empresaConverter" size="90" >
                                          <p:ajax event="itemSelect" listener="#{pedidoBean.empresaSelectListener}"
                                                  update="dadosEmpresa"/>
                                      </p:autoComplete>

                                    </h:panelGrid>
                                    <h:panelGroup id="dadosEmpresa">
                                    <h:panelGrid columns="4">
                                        <h:outputText value="Razão Social:" styleClass="formShortLabel"/>
                                        <p:inputText value="#{pedidoBean.empresaSelected.razaoSocial}"  style="width: 230px" disabled="true" />
                                         <h:outputText value="CNPJ:" styleClass="formShortLabel"/>
                                         <p:inputText value="#{pedidoBean.empresaSelected.cnpj }"  style="width: 155px" disabled="true" />
                                    </h:panelGrid>
                                    </h:panelGroup>

                                </p:panel>

                                <p:panel header="Fornecedor">
                                    <h:panelGrid columns="2">
                                      <h:outputText value=" Nome:  " styleClass="formShortLabel"/>
                                      <p:autoComplete value="#{pedidoBean.fornecedorSelected}"
                                                    completeMethod="#{autoCompleteBean.completeFornecedor}"
                                                    var="f" itemLabel="#{f.name}" itemValue="#{f}"
                                                    converter="fornecedorConverter" size="90" >
                                          <p:ajax event="itemSelect" listener="#{pedidoBean.fornecedorSelectListener}"
                                                  update="dadosFornecedor"/>
                                      </p:autoComplete>

                                    </h:panelGrid>
                                    <h:panelGroup id="dadosFornecedor">
                                    <h:panelGrid columns="4">
                                        <h:outputText value="Razão Social:" styleClass="formShortLabel"/>
                                        <p:inputText value="#{pedidoBean.fornecedorSelected.razaoSocial}"  style="width: 230px" disabled="true" />
                                         <h:outputText value="CNPJ:" styleClass="formShortLabel"/>
                                         <p:inputText value="#{pedidoBean.fornecedorSelected.cnpj}"  style="width: 155px" disabled="true" />
                                    </h:panelGrid>
                                    </h:panelGroup>
                                </p:panel>

                                <p:panel header="Obra">
                                <h:panelGrid columns="2">
                                  <h:outputText value=" Nome:  " styleClass="formShortLabel"/>
                                  <p:autoComplete value="#{pedidoBean.obraSelected}"
                                                  completeMethod="#{autoCompleteBean.completeObra}"
                                                var="o" itemLabel="#{o.name}" itemValue="#{o}"
                                                converter="obraConverter" size="90" />

                                </h:panelGrid>
                                </p:panel>

                            </p:tab>

                            <p:tab title="Itens">
                              <p:panel header="Produtos"  >

                                <h:panelGroup id="produtosList">

                                     <p:dataList value="#{pedidoBean.produto_pedidos}" var="p" style="width:370px" >
                                        <p:column >
                                            <p:commandButton icon="ui-icon ui-icon-minus" title="Remover insumo"
                                                             style="margin-right: 10px">
                                                <f:setPropertyActionListener value="#{p}" target="#{pedidoBean.produto_pedidoSelected}"/>
                                            </p:commandButton>
                                        </p:column>
                                        <p:column>
                                            <h:outputText value="Produto: #{p.produto.name}, Quantidade:  #{p.quantidade},
                                                          Valor: #{p.valor}, Valor total: #{p.valorTotal}">
                                                <f:convertDateTime pattern="dd/MM/yyyy" />
                                            </h:outputText>
                                        </p:column>

                                         <f:facet name="footer">
                                             <p:commandButton icon="ui-icon ui-icon-plus" title="Adicionar produto" update=":formNewProductAdd"
                                                              oncomplete="newProductAdd.show()"/>

                                         </f:facet>
                                      </p:dataList>

                                 </h:panelGroup>

                              </p:panel>
                            </p:tab>

                            <p:tab title="Valores">
                                <p:panel header="Valores">
                                       <script type="text/javascript">
                                             apply_price_format('.valor');
                                             apply_quant_format('.quant');

                                       </script>
                                    <h:panelGrid columns="2">
                                         <h:outputText value="Pagamento:" styleClass="formShortLabel"/>
                                         <p:selectOneMenu value="#{pedidoBean.pedidoSelected.tipoPagamento}" style="width: 182px" converter="tipoPagamentoConverter" >
                                               <f:selectItem itemLabel="Escolha o tipo de pagamento" itemValue="" />
                                               <f:selectItems value="#{pedidoBean.tipoPagamentos}" var="tipos"
                                                              itemLabel="#{tipos.name}" itemValue="#{tipos}"/>
                                           </p:selectOneMenu>


                                         <h:outputText value="Valor frete:" styleClass="formShortLabel"/>
                                         <p:inputText value="#{pedidoBean.pedidoSelected.valorFrete}" styleClass="valor"
                                                      converter="monetaryConverter"  >
                                             <p:ajax event="blur" update="valorTotal" listener="#{pedidoBean.calcularValorFreteListener(pedidoBean.pedido)}" />
                                         </p:inputText>

                                         <h:outputText value="Valor :" styleClass="formShortLabel"/>
                                         <p:inputText value="#{pedidoBean.pedidoSelected.valorBruto}" styleClass="valor" converter="monetaryConverter" disabled="true" />

                                         <h:outputText value="Valor Total:" styleClass="formShortLabel"/>
                                         <p:inputText id="valorTotal" value="#{pedidoBean.pedidoSelected.valorLiquido}" styleClass="valor" converter="monetaryConverter" disabled="true" />

                                         <h:outputText value="Datas pagamento:" styleClass="formShortLabel"/>
                                         <p:inputText value="#{pedidoBean.pedidoSelected.datasPagamento}" />


                                    </h:panelGrid>
                                </p:panel>
                            </p:tab>

                            <p:tab title="OBS">
                                <p:panel header="Anotações">
                                    <p:inputTextarea value="#{pedidoBean.pedidoSelected.obs}" cols="86" rows="10" autoResize="false" />
                                </p:panel>
                            </p:tab>

                        </p:tabView>
                        <p:separator />
                        <p:commandButton value="Salvar" action="#{pedidoBean.save()}"  update=":pedidoform :growl"
                                         onclick="editPedido.hide()" />
                        <p:commandButton type="push" value="Imprimir" action="#{pedidoBean.generateReportPedido()}" update=":growl :reportArea @form" />
                        <p:commandButton type="push" value="Sair"  action="#{pedidoBean.sairPedido()}" update=":editPedidoform" />

                    </h:form>
                </p:panel>
            </p:dialog>
         <!--Fim edição de pedido -->

         <p:dialog header="Visualização de pedido" widgetVar="showPedidoPDFDialog" modal="true" resizable="true" width="600" height="600">
             <h:panelGroup id="reportArea">
                  <h:panelGroup rendered="#{pedidoBean.renderPanelPedidoDownloadPDF()}">
                    <p:panel>
                        <div align="center" style="margin: 10px">
                            <h:panelGroup id="pedidoFrameReportGroup">
                                <iframe id="pedidoFrameReport" src="#{sharedManagedBean.contextPath()}/pdfservlet?src=#{pedidoBean.pedidoParams.filePath}"
                                       width="90%" height="90%">
                                    Seu browser não suporta IFRAME's
                                </iframe>
                            </h:panelGroup>
                        </div>
                        <p:separator styleClass="clear"/>

                        <div align="right" style="float: right">
                         <h:form>
                            <p:commandButton value="Download PDF" ajax="false">
                                <p:fileDownload value="#{pedidoBean.downloadAttestationPDF()}" />
                            </p:commandButton>
                             <p:commandButton value="Sair" onclick="showPedidoPDFDialog.hide()" style="margin-left: 30px"/>
                         </h:form>
                        </div>
                    </p:panel>
                </h:panelGroup>
             </h:panelGroup>
         </p:dialog>



         <!--Incio Cadastro de pedido-->
            <p:dialog header="Cadastro de pedido" widgetVar="newPedido" modal="true" resizable="false">
                <p:panel id="panelNewPedido" header="Pedido" style="width: 750px">

                    <h:form id="newPedidoform">
                        <p:tabView>

                            <p:tab title="Dados">

                                <p:panel header="Pedido">
                                    <h:outputText value=" Numero:" styleClass="formShortLabel"/>
                                    <p:inputText value="#{pedidoBean.pedido.number}" disabled="true" />
                                </p:panel>

                                <p:panel header="Empresa">

                                    <h:panelGrid columns="2">
                                      <h:outputText value=" Nome:  " styleClass="formShortLabel"/>
                                      <p:autoComplete value="#{pedidoBean.empresaSelected}"
                                                      completeMethod="#{autoCompleteBean.completeEmpresa}"
                                                    var="e" itemLabel="#{e.name}" itemValue="#{e}"
                                                    converter="empresaConverter" size="90" >
                                          <p:ajax event="itemSelect" listener="#{pedidoBean.empresaSelectListener}"
                                                  update="dadosEmpresa"/>
                                      </p:autoComplete>

                                    </h:panelGrid>
                                    <h:panelGroup id="dadosEmpresa">
                                    <h:panelGrid columns="4">
                                        <h:outputText value="Razão Social:" styleClass="formShortLabel"/>
                                        <p:inputText value="#{pedidoBean.empresaSelected.razaoSocial}"  style="width: 230px" disabled="true" />
                                         <h:outputText value="CNPJ:" styleClass="formShortLabel"/>
                                         <p:inputText value="#{pedidoBean.empresaSelected.cnpj }"  style="width: 155px" disabled="true" />
                                    </h:panelGrid>
                                    </h:panelGroup>

                                </p:panel>

                                <p:panel header="Fornecedor">
                                    <h:panelGrid columns="2">
                                      <h:outputText value=" Nome:  " styleClass="formShortLabel"/>
                                      <p:autoComplete value="#{pedidoBean.fornecedorSelected}"
                                                    completeMethod="#{autoCompleteBean.completeFornecedor}"
                                                    var="f" itemLabel="#{f.name}" itemValue="#{f}"
                                                    converter="fornecedorConverter" size="90" >
                                          <p:ajax event="itemSelect" listener="#{pedidoBean.fornecedorSelectListener}"
                                                  update="dadosFornecedor"/>
                                      </p:autoComplete>

                                    </h:panelGrid>
                                    <h:panelGroup id="dadosFornecedor">
                                    <h:panelGrid columns="4">
                                        <h:outputText value="Razão Social:" styleClass="formShortLabel"/>
                                        <p:inputText value="#{pedidoBean.fornecedorSelected.razaoSocial}"  style="width: 230px" disabled="true" />
                                         <h:outputText value="CNPJ:" styleClass="formShortLabel"/>
                                         <p:inputText value="#{pedidoBean.fornecedorSelected.cnpj}"  style="width: 155px" disabled="true" />
                                    </h:panelGrid>
                                    </h:panelGroup>
                                </p:panel>

                                <p:panel header="Obra">
                                <h:panelGrid columns="2">
                                  <h:outputText value=" Nome:  " styleClass="formShortLabel"/>
                                  <p:autoComplete value="#{pedidoBean.obraSelected}"
                                                  completeMethod="#{autoCompleteBean.completeObra}"
                                                var="o" itemLabel="#{o.name}" itemValue="#{o}"
                                                converter="obraConverter" size="90" />
                                    
                                </h:panelGrid>
                                </p:panel>

                            </p:tab>

                            <p:tab title="Itens">
                              <p:panel header="Produtos"  >

                                <h:panelGroup id="produtosList">

                                     <p:dataList value="#{pedidoBean.produto_pedidos}" var="p" style="width:370px" >
                                        <p:column >
                                            <p:commandButton icon="ui-icon ui-icon-minus" title="Remover insumo"
                                                             style="margin-right: 10px">
                                                <f:setPropertyActionListener value="#{p}" target="#{pedidoBean.produto_pedidoSelected}"/>
                                            </p:commandButton>
                                        </p:column>
                                        <p:column>
                                            <h:outputText value="Produto: #{p.produto.name}, Quantidade:  #{p.quantidade},
                                                          Valor: #{p.valor}, Valor total: #{p.valorTotal}">
                                                <f:convertDateTime pattern="dd/MM/yyyy" />
                                            </h:outputText>
                                        </p:column>

                                         <f:facet name="footer">
                                             <p:commandButton icon="ui-icon ui-icon-plus" title="Adicionar produto" update=":formNewProductAdd" 
                                                              oncomplete="newProductAdd.show()"/>

                                         </f:facet>
                                      </p:dataList>
                       
                                 </h:panelGroup>

                              </p:panel>
                            </p:tab>

                            <p:tab title="Valores">
                                <p:panel header="Valores">
                                       <script type="text/javascript">
                                             apply_price_format('.valor');
                                             apply_quant_format('.quant');

                                       </script>
                                    <h:panelGrid columns="2">
                                         <h:outputText value="Pagamento:" styleClass="formShortLabel"/>
                                         <p:selectOneMenu value="#{pedidoBean.pedido.tipoPagamento}" style="width: 182px" converter="tipoPagamentoConverter" >
                                               <f:selectItem itemLabel="Escolha o tipo de pagamento" itemValue="" />
                                               <f:selectItems value="#{pedidoBean.tipoPagamentos}" var="tipos"
                                                              itemLabel="#{tipos.name}" itemValue="#{tipos}"/>
                                           </p:selectOneMenu>
                                      

                                         <h:outputText value="Valor frete:" styleClass="formShortLabel"/>
                                         <p:inputText value="#{pedidoBean.pedido.valorFrete}" styleClass="valor"
                                                      converter="monetaryConverter"  >
                                             <p:ajax event="blur" update="valorTotal" listener="#{pedidoBean.calcularValorFreteListener(pedidoBean.pedido)}" />
                                         </p:inputText>

                                         <h:outputText value="Valor :" styleClass="formShortLabel"/>
                                         <p:inputText value="#{pedidoBean.pedido.valorBruto}" styleClass="valor" converter="monetaryConverter" disabled="true" />

                                         <h:outputText value="Valor Total:" styleClass="formShortLabel"/>
                                         <p:inputText id="valorTotal" value="#{pedidoBean.pedido.valorLiquido}" styleClass="valor" converter="monetaryConverter" disabled="true" />

                                         <h:outputText value="Datas pagamento:" styleClass="formShortLabel"/>
                                         <p:inputText value="#{pedidoBean.pedido.datasPagamento}" />


                                    </h:panelGrid>
                                </p:panel>
                            </p:tab>

                            <p:tab title="OBS">
                                <p:panel header="Anotações">
                                    <p:inputTextarea value="#{pedidoBean.pedido.obs}" cols="86" rows="10" autoResize="false" />
                                </p:panel>
                            </p:tab>


                        </p:tabView>
                        <p:separator />
                        <p:commandButton value="Salvar" action="#{pedidoBean.save()}"  update=":pedidoform :growl" onclick="newPedido.hide()" />
                    </h:form>
                </p:panel>
            </p:dialog>
          <!-- Fim cadastro pedido -->
        </ui:define>



        <ui:define name="content">
            <h:form id="pedidoform">
               <h:panelGrid columns="2">
                        <h:outputText value="Numero pedido:" styleClass="formLabel" style="width: 120px"/>
                        <p:inputText id="numeroPedido" style="width: 300px" value="#{pedidoBean.numeroPedidoFilter}"
                                     onclick="jQuery(this).select()">
                            <p:ajax event="keyup" update="pedidoList" />
                        </p:inputText>

                        <p:watermark for="numeroPedido" value="Digite o numero do pedido" />
               </h:panelGrid>
              <h:panelGroup id="pedidoList">
                  <p:dataTable var="p" value="#{pedidoBean.listPedido()}"
                               paginator="true" rows="10" rowKey="#{p.id}"
                                     emptyMessage="Nenhum pedido foi encontrado"
                                     selectionMode="single" selection="#{pedidoBean.pedidoSelected}">

                            <p:ajax event="rowSelect" update="@this"  />

                            <f:facet name="header">
                                Lista de pedidos
                            </f:facet>

                            <p:column>
                                <f:facet name="header">
                                    <h:outputText value="Numero" />
                                </f:facet>
                                <h:outputText value="#{p.number}" />
                            </p:column>

                            <p:column>
                                <f:facet name="header">
                                    <h:outputText value="Fornecedor" />
                                </f:facet>
                                <h:outputText value="#{p.fornecedor}" />
                            </p:column>

                            <p:column>
                                <f:facet name="header">
                                    <h:outputText value="Obra" />
                                </f:facet>
                                <h:outputText value="#{p.obra}" />
                            </p:column>

                            <p:column>
                                <f:facet name="header">
                                    <h:outputText value="Data pedido" />
                                </f:facet>
                                <h:outputText value="#{p.dataPedido}" >
                                   <f:convertDateTime pattern="dd/MM/yyyy" />
                                </h:outputText>
                            </p:column>


                            <f:facet name="footer">
                                <p:commandButton icon="ui-icon ui-icon-plus" title="Adicionar pedido" update=":newPedidoform" oncomplete="newPedido.show()"
                                                 disabled="#{not sharedPermissionManagedBean.hasPermission('CRIAR_PEDIDO')}"/>
                                <p:commandButton icon="ui-icon ui-icon-print" title="Editar pedido" actionListener="#{pedidoBean.initFormEditPedido()}" update=":editPedidoform" oncomplete="editPedido.show()"
                                                 disabled="#{(not sharedPermissionManagedBean.hasPermission('EDITAR_PEDIDO')) or (pedidoBean.pedidoSelected.id == null)}"/>

                                <p:commandButton icon="ui-icon ui-icon-minus" title="Remover pedido"
                                                 disabled="#{(not sharedPermissionManagedBean.hasPermission('REMOVER_PEDIDO')) or (pedidoBean.pedidoSelected.id == null)}"/>

                            </f:facet>
                        </p:dataTable>
                    </h:panelGroup>
            </h:form>
        </ui:define>
    </ui:composition>
</html>


